package cn.hh.ymcc.service.impl;

import cn.hh.ymcc.enums.GlobalExceptionCode;
import cn.hh.ymcc.exception.GlobalException;
import cn.hh.ymcc.result.JSONResult;
import cn.hh.ymcc.service.ITokenService;
import cn.hh.ymcc.util.AssertUtil;
import cn.hh.ymcc.util.StrUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;

import java.util.concurrent.TimeUnit;

@Service
public class TokenServiceImpl implements ITokenService {

    @Autowired
    private RedisTemplate redisTemplate;

    /**
     * 生成防重Token
     * @param courseId
     * @return
     */
    @Override
    public String createToken(Long courseId) {
        // 非空校验
        AssertUtil.isNotNull(courseId, GlobalExceptionCode.SERVICE_PARAM_IS_NULL.getMessage());
        // 生成token
        String token = StrUtils.getComplexRandomString(6);
        // 存入redis
        // 使用loginId和CourseId作为key,设置8分钟有效
        Long loginId =3L;
        String key ="token:"+loginId+":"+courseId;
        // 存入redis,将courseId=key, token=value,8分钟过期时间
        redisTemplate.opsForValue().set(key,token,8, TimeUnit.MINUTES);
        return token;
    }



}
